	function wait(w){loop(w){yield;}}

//@w
	task Tcircle(x,y,frame,alpha,homing)//(XW,YW,pt[,l,ǐ(true:L/false:))
	{
		let obj=Obj_Create(OBJ_EFFECT);
		ObjEffect_SetTexture(obj,GetCurrentScriptDirectory~"img\circle.png");
		ObjEffect_SetRenderState(obj,ALPHA);
		ObjEffect_SetLayer(obj,1);
		ObjEffect_SetPrimitiveType(obj,PRIMITIVE_TRIANGLEFAN);
		ObjEffect_CreateVertex(obj,4);
		ObjEffect_SetVertexUV(obj,0,0,0);
		ObjEffect_SetVertexUV(obj,1,256,0);
		ObjEffect_SetVertexUV(obj,2,256,256);
		ObjEffect_SetVertexUV(obj,3,0,256);
		ObjEffect_SetVertexXY(obj,0,-128,-128);
		ObjEffect_SetVertexXY(obj,1,128,-128);
		ObjEffect_SetVertexXY(obj,2,128,128);
		ObjEffect_SetVertexXY(obj,3,-128,128);
		ObjEffect_SetVertexColor(obj,0,alpha,255,255,255);
		ObjEffect_SetVertexColor(obj,1,alpha,255,255,255);
		ObjEffect_SetVertexColor(obj,2,alpha,255,255,255);
		ObjEffect_SetVertexColor(obj,3,alpha,255,255,255);
		Obj_SetPosition(obj,x,y);
		let scalesin=0;
		let anglesin=180;
		let anglez=-6;
		loop(60)
		{
			if(homing==true)
			{
				Obj_SetPosition(obj,GetX,GetY);
			}
			let scale=sin(scalesin);
			let anglez=360*sin(anglesin);
			ObjEffect_SetScale(obj,scale,scale);
			ObjEffect_SetAngle(obj,0,0,anglez);
			scalesin+=1.5;
			anglesin+=1.5;
			yield;
		}
		loop(frame-60)
		{
			if(homing==true)
			{
				Obj_SetPosition(obj,GetX,GetY);
			}
			let scale=0.9+0.1*sin(scalesin);
			ObjEffect_SetScale(obj,scale,scale);
			ObjEffect_SetAngle(obj,0,0,anglez);
			scalesin+=3;
			anglez-=6;
			yield;
		}
		Obj_Delete(obj);
	}
